package reconhecimento.util;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class LeituraArquivo {
	private FileInputStream arquivo;

	private String enderecoArquivo;

	/**
	 * @param enderecoArquivo
	 * @throws java.io.FileNotFoundException
	 * @roseuid 41B86865013D
	 */
	public LeituraArquivo(final String enderecoArquivo)
			throws FileNotFoundException {
		this.arquivo = new FileInputStream(enderecoArquivo);
		this.setEnderecoArquivo(enderecoArquivo);
	}

	/**
	 * @roseuid 41B868650158
	 */
	@Override
	protected void finalize() throws Throwable {
		this.close();
	}

	/**
	 * @return java.lang.String
	 * @throws java.io.IOException
	 * @roseuid 41B868650167
	 */
	public String readLine() throws IOException {
		String retorno = "";
		char caractere;
		while (!this.isEOF()) {
			caractere = (char) this.arquivo.read();
			if ((caractere != '\n') && (caractere != '\r')) {
				retorno += caractere;
			} else {
				break;
			}
		}
		return retorno;
	}

	/**
	 * @return boolean
	 * @throws java.io.IOException
	 * @roseuid 41B868650186
	 */
	public boolean isEOF() throws IOException {
		return this.arquivo.available() == 0;
	}

	public String readText() {
		final DataInputStream arq = new DataInputStream(this.arquivo);
		byte texto[] = null;
		try {
			texto = new byte[this.arquivo.available()];
			arq.read(texto);
		} catch (final IOException ex) {
			ex.printStackTrace();
		}
		return new String(texto);
	}

	/**
	 * @roseuid 41B8686501A5
	 */
	public void close() {
		try {
			this.arquivo.close();
		} catch (final IOException ex) {
			ex.printStackTrace();
		}
	}

	public String getEnderecoArquivo() {
		return this.enderecoArquivo;
	}

	public void setEnderecoArquivo(final String enderecoArquivo) {
		this.enderecoArquivo = enderecoArquivo;
	}

}
